/**
 * java支持对类属性访问的保护，也就是说，不希望外部类访问类中的属性或方法时，只允许内部调用，这种情况下就要用权限控制符(权限修饰符)
 * 访问范围    private    default    protected    public
 * 同一类      yes         yes        yes          yes
 * 同一包中的类             yes        yes          yes
 * 子类                               yes          yes
 * 外部包中的类                                      yes
 *
 * 和文件名相同的类，默认是public，也可以是default权限，不能是private和protected
 * 一个类文件中，可以有多个类，只能有一个public类，就是和类文件名一致的类，其他类不能设置为public
 */
package com.test.util;

public class AccessControl {

    private int i;  //只能类内部访问

    private void priv(){
        System.out.println("我是私有类，除了同一个类中可以访问我，其他都不行");
    }

    void defa(){  //不写权限控制符就是default权限，前面加了default反而报错，因为default在接口有其他意思
        System.out.println("我是default类，同一类和同一个包（文件夹）中的类可以访问我");
    }

    protected void prote(){
        System.out.println("我是protected类，同一类、同一个包中类、子类可以访问我，外部包的类不能访问我");
    }

    public void pub(){
        System.out.println("我是public类，所有类都可以访问我");
    }

}
